package main

import "fmt"


// 求 nums[start...end] 的累加和
func sumArr(nums []int, start int, end int) int {
   // 退出条件，最小子问题
   if start > end {
      return 0
   }
   // 第一步：拿到区间第一个元素值
   num := nums[start]

   // 第二步：求解子问题，拿到 nums[start + 1...end] 的累加和
   tmpSum := sumArr(nums, start + 1, end)

   // 第三步：得到子问题的结果
   return num + tmpSum
}

func main() {
   nums := []int{1, 2, 3, 4, 5}
   res := sumArr(nums, 0, 4)
   fmt.Println(res)
}
